What is js-sha256?
The js-sha256 npm package is a simple SHA-256 & SHA-224 hash function for JavaScript supports UTF-8 encoding. It can be used in various environments like web browsers and Node.js. It provides functionalities for hashing messages with SHA-256 and SHA-224 algorithms.
What are js-sha256's main functionalities?
SHA-256 Hash
Generates a SHA-256 hash of the input string. This is useful for creating unique identifiers for data, secure password storage, and ensuring data integrity.
sha256('message')
SHA-224 Hash
Generates a SHA-224 hash of the input string. Similar to SHA-256, but produces a shorter hash value. It's used for applications where hash length is a concern but still requires a high level of security.
sha224('message')
HMAC-SHA-256
Generates a HMAC (Hash-based Message Authentication Code) using SHA-256. This is used for verifying both the data integrity and the authenticity of a message.
sha256.hmac('key', 'message')
HMAC-SHA-224
Generates a HMAC using SHA-224. Similar to HMAC-SHA-256, it's used for data integrity and authenticity but with a shorter hash value.
sha224.hmac('key', 'message')
Other packages similar to js-sha256
crypto-js
Crypto-js is a package that provides cryptographic functionalities including SHA-256. It offers a broader range of cryptographic algorithms compared to js-sha256, making it suitable for applications requiring more than just SHA-256 or SHA-224.
sha.js
Sha.js is a streaming SHA hashes module for Node.js that supports SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512. It's more versatile than js-sha256 in terms of the variety of SHA algorithms supported.
js-sha256


A simple SHA-256 / SHA-224 hash function for JavaScript supports UTF-8 encoding.
Demo
SHA256 Online
SHA224 Online
Download
Compress
Uncompress
Installation
You can also install js-sha256 by using Bower.
bower install js-sha256
For node.js, you can use this command to install:
npm install js-sha256
Usage
You could use like this:
sha256('Message to hash');
sha224('Message to hash');
If you use node.js, you should require the module first:
sha256 = require('js-sha256');
or
sha256 = require('js-sha256').sha256;
sha224 = require('js-sha256').sha224;
Methods
sha256(str, asciiOnly)
Hash string to sha256, set asciiOnly to true for better performace if you ensure input is ascii.
str: String
String to hash.
asciiOnly: Boolean
(default: false
)
Specify the string encoding is ASCII.
sha224(str, asciiOnly)
Hash string to sha224, set asciiOnly to true for better performace if you ensure input is ascii.
str: String
String to hash.
asciiOnly: Boolean
(default: false
)
Specify the string encoding is ASCII.
Example
Code
sha256('');
sha256('The quick brown fox jumps over the lazy dog', true);
sha256('The quick brown fox jumps over the lazy dog.', true);
sha224('');
sha224('The quick brown fox jumps over the lazy dog', true);
sha224('The quick brown fox jumps over the lazy dog.', true);
Output
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c
d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f
730e109bd7a8a32b1cb9d9a09aa2325d2430587ddbc0c38bad911525
619cba8e8e05826e9b8c519c0a5c68f4fb653e8a3d8aa04bb2c8cd4c
It also supports UTF-8 encoding:
Code
sha256('中文');
sha224('中文');
Output
72726d8818f693066ceb69afa364218b692e62ea92b385782363780f47529c21
dfbab71afdf54388af4d55f8bd3de8c9b15e0eb916bf9125f4a959d4
Benchmark
UTF8
ASCII
Extensions
jQuery
If you prefer jQuery style, you can add following code to add a jQuery extension.
Code
jQuery.sha256 = sha256
jQuery.sha224 = sha224
And then you could use like this:
$.sha256('message');
$.sha224('message');
Prototype
If you prefer prototype style, you can add following code to add a prototype extension.
Code
String.prototype.sha256 = function() {
return sha256(this);
};
String.prototype.sha224 = function() {
return sha224(this);
};
And then you could use like this:
'message'.sha256();
'message'.sha224();
License
The project is released under the MIT license.
Contact
The project's website is located at https://github.com/emn178/js-sha256
Author: emn178@gmail.com